package com.oyjd.ybx.business.user.service;

import java.util.Date;

import com.oyjd.ybx.bean.vo.UserVO;
import com.oyjd.ybx.fw.action.Page;
import com.oyjd.ybx.business.user.vo.UserExVO;

/**
 * 
 * 用户管理接口
 * 
 * @author <b>欧建东<br/>
 *         Email:oyjd@163.com</b>
 * @version 1.0
 */
public interface UserService {
	/**
	 * 查询用户列表
	 * 
	 * @param page
	 *            页面对象
	 * @return
	 */
	Page<UserExVO> getList(Page<UserExVO> page);

	/**
	 * 根据用户ID获取用户信息
	 * 
	 * @param userId
	 *            用户ID
	 * @return
	 */
	UserVO getUser(String userId);

	/**
	 * 根据帐号获取用户信息
	 * 
	 * @param account
	 * @return
	 */
	UserVO getUserByAccount(String account);

	/**
	 * 新增用户
	 * 
	 * @param roleId
	 *            角色
	 * @param account
	 *            帐号
	 * @param pwd
	 *            密码
	 * @param name
	 *            昵称
	 * @param user
	 *            当前用户
	 */
	void add(String roleId, String account, String pwd, String name, String user);
	
	/**
	 * 新增用户
	 * 
	 * @param roleId
	 *            角色
	 * @param account
	 *            帐号
	 * @param pwd
	 *            密码
	 * @param name
	 *            昵称
	 * @param user
	 *            当前用户
	 */
	void addFront(String roleId, String account, String pwd, String name,String sex, String user);

	/**
	 * 修改用户
	 * 
	 * @param userId
	 *            用户ID
	 * @param roleId
	 *            角色
	 * @param name
	 *            昵称
	 * @param user
	 *            当前用户
	 */
	void edit(String userId, String roleId, String name, String user);

	/**
	 * 管理员重置密码
	 * 
	 * @param userId
	 *            用户ID
	 * @param pwd
	 *            新密码
	 */
	void resetPwd(String userId, String pwd);
	
	/**
	 * 重置密码
	 * 
	 * @param account
	 *            用户ID
	 * @param pwd
	 *            新密码
	 */
	void resetPwd2(String account, String pwd);

	/**
	 * 删除用户
	 * 
	 * @param ids
	 *            用户ID
	 */
	void remove(String[] ids);

	/**
	 * 修改个人资料
	 * 
	 * @param userId
	 *            用户ID
	 * @param name
	 *            姓名
	 * @param sex
	 *            性别
	 * @param babySex
	 *            宝宝性别
	 * @param babyBirthday
	 *            宝宝生日
	 * @param phone
	 *            电话
	 * @param email
	 *            电子邮件
	 * @param user
	 *            当前用户
	 */
	void personEdit(String userId, String name, String sex, String babySex, Date babyBirthday, String phone, String email, String user);

	/**
	 * 修改个人密码
	 * 
	 * @param userId
	 *            用户ID
	 * @param oldPwd
	 *            旧密码
	 * @param newPwd
	 *            新密码
	 */
	boolean personResetPwd(String userId, String oldPwd, String newPwd);
}
